Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

PrintDocument και

Îåêßíçóå áðü ôï ìÝëïò gmeles. Τελευταία δημοσίευση από το μέλος gmeles στις 23-04-2006, 21:08. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  20-04-2006, 11:16 12034

    PrintDocument και

    Καλημέρα ουσιαστικά αυτό που έχω κολλήσει είναι:
    έχω μια περιγραφή προϊόντος.
    Οι χαρακτήρες και ο αριθμός αυτών είναι σε τυχαία θέση και με τυχαίο πλήθος και θέλω στην εκτύπωση να βγαίνουν στην πρώτη σειρα max οι 20 πρώτοι χαρακτήρες του string στην δεύτερη οι άλλοι 20 κοκ με την διαφορά ότι μια λέξη δεν μπορεί να κόβεται στην μέση αλλά πρέπει πρέπει η αλλαγή της γραμμής να γίνεται είτε στο κενό είτε στην τελεία. Έχω κάνει την παρακάτω μπακάλικη function αλλά από την δεύτερη γραμμή και μετά μου αλλάζει γραμμή σε κάθε κενό. Καμιά ιδέα


    Public Function splitItemDescription(ByVal st As String, ByVal intLength As Integer) As String
    Dim o, i As Integer
    Dim k, m As String
    Dim newLine As Boolean
    Dim Cpos As Integer

    k = ""
    m = ""
    newLine = False

    ' Remove double spaces from string

    st = Trim(st)
    Cpos = InStr(1, st, " ")

    While Cpos <> 0
    m += Strings.Left(st, Cpos)
    st = Trim(Strings.Mid(st, Cpos + 1))
    Cpos = InStr(1, st, " ")
    'MessageBox.Show(Cpos, "Cpos")
    End While

    m += st
    st = m

    Dim maxchars As Integer = 20
    Dim sympos1, sympos2 As Integer
    Dim firstsym As Boolean

    firstsym = True
    sympos1 = 0
    sympos2 = 0
    o = 1
    For i = 0 To st.Length - 1
    m = st.Chars(i)
    k += m
    If (Char.IsSymbol(m) Or m = " ") And k.Length > intLength * o Then
    'st = SplitString(st, i)
    o += 1
    k += Chr(10) + Chr(13)
    End If
    Next
    splitItemDescription = k
    End Function
    Melesanakis Georgios
    MCAD .Net, MCT
    IT Manager
  •  20-04-2006, 12:56 12037 σε απάντηση της 12034

    Απ: PrintDocument και

    Εγώ πάντως δεν θα έμπλεκα με manual parsing σε όλο το string..
    Θα έφτιαχνα ένα array απο το string με delimeter το κενό.
    Στην συνέχεια μια loop η οποία θα περνούσε ενα ενα τα rows του array κρατώντας
    το length του.. Εάν το length ξεπερνάει τους 20 char ή υπάρχει τελεία στο τέλος του, τότε να αλλάζει γραμμή..Για πολύ μεγάλα strings ίσως είναι λίγο memory eater, οπότε καλό θα ήτανε να σπάς το string πρωτού το δώσεις για parse..
    Ένας άλλος τρόπος είναι και με regular expression..


    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  20-04-2006, 13:17 12038 σε απάντηση της 12037

    Απ: PrintDocument και

    μπορείς να δώσεις sample? θα ήμουν υπόχρεος.
    Melesanakis Georgios
    MCAD .Net, MCT
    IT Manager
  •  20-04-2006, 23:59 12050 σε απάντηση της 12034

    Απ: PrintDocument και

    Το έκανα και με split και για κάθε spit άνω τον 20 χαρακτήρων να αλλάζει γραμμή αλλά και πάλι δεν έχω καταλάβει πως να το κάνω να μην αλλάζει από εκεί και πέρα σε κάθε κενό αλλά μόνο πριν τους 40 χαρακτήρες. (Για την ακρίβεια το έκανα βάζοντας ένα πάνω όριο αλλά αν η πρώτη γραμμή έχει για παράδειγμα 30 χαρακτήρες, η 2η θα έχει >10 και η 3η άλλους πχ 20. Οπότε καταλαβαίνεις ότι αυτό δεν είναι ιδιαίτερα όμορφο αισθητικά
    Melesanakis Georgios
    MCAD .Net, MCT
    IT Manager
  •  21-04-2006, 00:00 12051 σε απάντηση της 12050

    Απ: PrintDocument και

    Επίσης, τι εννοείς με regular expression?
    Melesanakis Georgios
    MCAD .Net, MCT
    IT Manager
  •  22-04-2006, 01:30 12066 σε απάντηση της 12034

    Απ: PrintDocument και

    Θα σου γράψω ένα παράδειγμα μόλις βρω γυρίσω την Δευτέρα πίσω..Τώρα βρίσκομαι εκτός και δεν εχω και πολύ χρόνο..Να ξεκουραστούμε και λίγο βρε αδελφέ.. Smile [:)]
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  23-04-2006, 21:08 12070 σε απάντηση της 12066

    Απ: PrintDocument και

    Καλό πάσχα και καλή ξεκούραση (σε όλους)
    Melesanakis Georgios
    MCAD .Net, MCT
    IT Manager
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems